1. Field of the Invention
The present invention relates to the display of printer property pages, and particularly relates to the integral display of printer property pages generated by a printer driver having a 32-bit user interface together with property pages provided automatically by default by a windowing operating system.
2. Description of the Related Art
In a windowing operating system such as Windows 95.TM., each printer has associated properties such as page size and orientation, rendering and halftoning modes, page layout modes, default color matching modes, and the like. These properties can be displayed by pulling up the printer's property sheet. For example, in Windows 95.TM. a user can select the Printers folder, right click on a displayed printer to pop up the printer's context menu, and then select "Properties" from the context menu so as to cause the printer's property sheet to be displayed. The property sheet contains multiple tabbed pages, with each page displaying one aspect of the printer's properties. An example of a property sheet is shown in FIG. 1.
Specifically, FIG. 1 illustrates property sheet 1 as it would appear displayed on a computer's display monitor. Property sheet 1 includes tabbed property pages 3 through 7, with the "Paper" property page 6 currently selected. Any of the other property pages can be selected instead of "Paper" page 6 simply by clicking on the page's tab. Ordinarily, "General" page 3, "Details" page 4 and "Sharing" page 5 are provided automatically by default by the operating system. Additional pages such as "Paper" page 6 and "Graphics" page 7, on the other hand, typically are provided by the printer driver.
Most printer drivers today are legacy 16-bit drivers. Since it is the operating system that displays the property sheet, it is also the operating system that accommodates the display of additional property pages provided by these 16-bit printer drivers. Specifically, the operating system merely requires the 16-bit printer driver to expose a device driver interface ("DDI") entry point called ExtDeviceModePropSheet, which provides one or more property pages upon request from the operating system. Thus, whenever the operating system receives a user request to display a printer property sheet it automatically attempts to call the driver's ExtDeviceModePropSheet DDI entry point. If this entry point is in fact provided by the printer driver, the Windows operating system automatically displays the additional property pages returned from the 16-bit printer driver. In particular, the operating system displays the 16-bit driver property pages integrally with the property pages generated by the operating system, as illustrated in FIG. 1.
Recently, 16-bit printer drivers have begun to be replaced by 32-bit printer drivers. The newer 32-bit printer drivers can also generate property pages similar to those generated by 16-bit printer drivers. In addition, 32-bit printer drivers can take advantage of 32-bit operating system features, such as preemptive multi-threading and additional user interface elements, which are available to 32-bit code but not to 16-bit code. Preemptive multi-threading, for instance, can permit more flexible coding and more efficient processing in certain cases. Thus, it is generally desirable to implement printer drivers, including the driver's user interface, using 32-bit code.
However, these newer 32-bit printer drivers having a 32-bit user interface cannot utilize the 16-bit DDI mechanism described above. Accordingly, when the operating system does not detect the 16-bit DDI entry point, the operating system instead automatically provides an additional user interface in the form of a "setup" interface button.
FIGS. 2A and 2B illustrate a printer property sheet 20 for a conventional 32-bit printer driver. As shown in these figures, property sheet 20 only includes the property pages provided automatically by default by the operating system, namely "General" page 23 (shown in FIG. 2A), "Details" page 24 (shown in FIG. 2B) and "Sharing" page 25 (similar to page 140 shown in FIG. 9). Since a 16-bit DDI entry point was not detected in this case, no printer driver property pages were displayed integrally with the operating system property pages. Instead, the operating system provided Setup button 22 (shown in FIG. 2B) as an entry point to a second property sheet.
Upon user selection of Setup button 22, a second property sheet, such as property sheet 30 shown in FIG. 3, is displayed. This additional property sheet contains the property pages generated by the 32-bit printer driver, that is, all the additional property pages that are needed to set properties for the printer. The printer driver's property pages, such as pages 31 through 33, are inserted into property sheet 30 using standard Windows API functions.
Such an arrangement is less than desirable, since full control over the printer requires access to two separate property sheets. That is, to fully control printer settings, a user must access the standard Windows-generated property pages, as well as a second property sheet, activated from the "setup" button on the first, for the property pages generated by the 32-bit driver itself. Moreover, it can be difficult for a user to fully view both such property sheets at the same time. This causes inconvenience to the user and slows the speed with which printer settings can be changed.
Finally, the user typically is required to know that additional printer settings can be accessed via the setup interface button. In particular, property sheet 20 initially displays General page 23. Accordingly, to access these additional printer settings a user generally must know to select Details page 24 and then select setup interface button 22 in order to obtain secondary property sheet 30. This causes further inconvenience to the user.
It is noted that merely inserting the 32-bit property pages into the Windows-generated property sheet 20 using shell extensions will still result in the "setup" button 22 appearing. This is confusing to the user, since the setup button 22 no longer accesses any printer setup information.
What is needed, therefore, is a 32-bit printer driver which has a 32-bit user interface to take advantage of the additional features available to 32-bit code, while at the same time both providing property pages that can be integrally displayed with those of the Windows operating system and suppressing the display of a "setup" button, which could otherwise be confusing to a user.